home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 July / EnigmA AMIGA RUN 20 (1997)(G.R. Edizioni)(IT)[!][issue 1997-07 & 08][EAR-CD IV].iso / earkit / kaffe / kaffe-0_9_0.readme < prev   
Text File  |  1997-06-16  |  6KB  |  173 lines

  1. KAFFE                                                           PATCH NOTES
  2. ===========================================================================
  3. Written by Tim Wilkinson <tim@tjwassoc.demon.co.uk>, 1996-97.
  4. Ported to AmigaOS by Matthias Hopf <mshopf@informatik.uni-erlangen.de>
  5.  
  6.  
  7.                   IMPORTANT NOTES
  8.                   ===============
  9.  
  10. kaffe-0.9.0-gcalign-diff
  11. ------------------------
  12.  
  13. !!! autoconf must be called after applying this patch !!!
  14.  
  15.  
  16.  
  17.                  CHANGELOG ENTRIES
  18.                  =================
  19.  
  20. kaffe-0.9.0-amiga-diff
  21. ----------------------
  22.  
  23. Sat May 24 17:00:27 MET1 1997   Matthias Hopf   <mshopf@informatik.uni-erlangen.de>
  24.  
  25.     * NOTES/FAQ.amiga: Cleaned up Amiga FAQ and added additional info.
  26.     * config/m68k/amigaos/{BUGS,COMMONPROBLEMS}.amiga: Removed.
  27.     * config/m68k/amigaos/md.[ch]: Cleaned up machine dependend code
  28.       and removed hacks.
  29.     * config/m68k/amigaos/threads.h: Fixed include check.
  30.     * config/m68k/amigaos/md.h: Enabled null pointer checks for the
  31.       first time.
  32.     * kaffevm/{intrp,jit}/machine.h: Removed CHECK_NULL macros as they
  33.       depend on a flag setting in md.h which is included *way after*
  34.       machine.h in machine.c.
  35.     * kaffevm/{intrp,jit}/machine.c: Added updated CHECK_NULL macros.
  36.     * kaffevm/kaffe.def: Updated CHECK_NULL macros to new calling
  37.       syntax.
  38.     * kaffevm/kaffe.def: Added loads of CHECK_NULL macro invocations.
  39.  
  40. kaffe-0.9.0-gcbug-diff
  41. ----------------------
  42.  
  43. Mon May 26 23:10:24 MET1 1997   Matthias Hopf   <mshopf@informatik.uni-erlangen.de>
  44.  
  45.     * kaffevm/gc-incremental.c: fixed wired GC finalization bug that
  46.       could get the GC into a livelock.
  47.     * {APIcore,APInet}/classes/Makefile.in: added lost files
  48.     * test/Makefile.in: cleaning up regression now.
  49.  
  50. kaffe-0.9.0-gcalign-diff
  51. ------------------------
  52.  
  53. Tue May 27 01:05:42 MET1 1997   Matthias Hopf   <mshopf@informatik.uni-erlangen.de>
  54.  
  55.     * config/config.h.in: Added ALIGNMENTOF_VOIDP.
  56.     * configure.in: Added Alignment test for void*.
  57.     * kaffevm/gc-incremental.c(scanConservative): Scaning memory in steps
  58.       of ALIGNEMNTOF_VOIDP instead of sizeof(void*).
  59.  
  60. kaffe-0.9.0-gg-diff
  61. -------------------
  62.  
  63. Thu Jun 05 01:54:37 MET1 1997   Matthias Hopf   <mshopf@informatik.uni-erlangen.de>
  64.  
  65.     * NOTES/FAQ.amigaos,config/m68k/amigaos/REPORT.amiga: Renamed ADE
  66.       (Amiga Developer Environment to GG (Geek Gadgets), its new name.
  67.  
  68.  
  69.  
  70.            PATCH EXPLANATIONS (PATCH MAIL BODYS)
  71.            =====================================
  72.  
  73.  
  74. kaffe-0.9.0-amiga-diff
  75. ----------------------
  76.  
  77. Here are some additional kaffe patches for the Amiga.
  78.  
  79. Some notes: Most functions in kaffe.def didn't do CHECK_NULL
  80. invocations correctly, as noone used them upto now, nobody
  81. noticed that. I had to move the macro definitions in the machine.c
  82. files of intpr/ and jit/ because they depend on a flag definition
  83. in md.h, and I had to addapt them. I also renamed the flag name
  84. into a more intuitive one. As noone ever used it, it should not
  85. make any problems at all!
  86.  
  87. Not every class seems to work with kaffe on the Amiga, but
  88. it's getting better. Perhaps it's a gc problem...
  89.  
  90.  
  91. kaffe-0.9.0-gcbug-diff
  92. ----------------------
  93.  
  94. I have invested quite some time to investigate an obscure bug I noticed
  95. within the garbage collector. When compiling GetInterfaces.java in
  96. test/regression, Sun's compiler class would just enter an infinite loop.
  97. However, this was not the case on my friends' computers.
  98.  
  99.  
  100. What happened is the following:
  101.  
  102. After the main garbage collection a white memory block contained an object
  103. that needed finalization. The garbage collector walked this object in order
  104. to preserve potentially addressed objects (kaffevm/gc-incremental.c:319-).
  105.  
  106. The walked object seemed to have a reference to another white object, that
  107. happened to be in the same memory block. Thus this object was greyed, and
  108. the block was moved to the grey list.
  109.  
  110. Now as the GC tried to continue with the next block, it was stuck in the grey
  111. list. Because the termination expression could never be fullfilled, it looped
  112. endlessly...
  113.  
  114.  
  115. It's possible that other wired garbage collector problems had the same
  116. source. Well, now, find a patch enclosed which fixes the problem. I think
  117. that was the most important sentence of this mail ;^)
  118.  
  119. The patch is not tested in incremental mode, but as the code is the same as
  120. for non-incremental mode, there shouldn't be any noticable differences.
  121.  
  122.  
  123. BTW - the patch also includes two Makefile.in that seemed to be lost -
  124. 'make distclean' at least needed them...
  125. And there's a (small) patch for test/Makefile.in for cleaning up
  126. test/regression included, too.
  127.  
  128.  
  129. kaffe-0.9.0-gcalign-diff
  130. ------------------------
  131.  
  132. While trying to find out what was wrong with the GC (see my last mail) I
  133. happened to find out that on m68k/amigaos regulary pointers on the stack were
  134. not properly aligned (e.g. p%-4 = 2). I have added an aligment test to
  135. configure.in and changed the scanner to use ALIGNMENTOF_VOIDP instead of
  136. sizeof(void*) as stepping width.
  137.  
  138. I guess there are more CPUs which could benefit from this patch. If you would
  139. like to know whether there are misalignments on your CPU, too, enable the
  140. alignment test in kaffevm/gc-incremental.c (#define ALDBG(s) s) and wait for
  141. any output of the form <x>, x being a digit, specifying the misalignment.
  142.  
  143. Note that *some* 'pointers' with misalignment showing up doesn't say anything
  144. - they can well be integer values that were misinterpreted as pointers.
  145. But if you happen to get for instance 20 misaligned pointers per garbage
  146. collection, you should now have a problem less than before ;)
  147.  
  148. And please tell me when you have found another CPU that shared this problem.
  149.  
  150.  
  151. Find the patch enclosed. Note that you will have to run autoconf first! I did
  152. not include patches for 'configure', because the amigaos autoconf adds some
  153. additional lines that don't make sense for other computers.
  154.  
  155.  
  156. kaffe-0.9.0-gg-diff
  157. -------------------
  158.  
  159. Well, at least it was decided to rename the development package from
  160. the former ADE (Amiga Developer Environment) to Geek Gadgets.
  161. Thus I have changed all occuring references to ADE in the FAQ.
  162.  
  163.  
  164.  
  165. That's it, folks :)
  166.  
  167. Matthias Hopf
  168. <mshopf@informatik.uni-erlangen.de>
  169.  
  170. ----
  171. * Java and Javasoft are registered trademark of Sun Microsystems, Inc.
  172.  
  173.